Code Reordering and Speculation Support for Dynamic Optimization Systems
نویسندگان
چکیده
For dynamic optimization systems, success is limited by two difficult problems arising from instruction reordering. Following optimization within and across basic block boundaries, both the ordering of exceptions and the observed processor register contents at each exception point must be consistent with the original code. While compilers traditionally utilize global data-flow analysis to determine which registers require preservation, this analysis is often infeasible in dynamic optimization systems due to both strict time/space constraints and incomplete code discovery. This paper presents an approach called Precise Speculation that addresses these problems. The proposed mechanism is a component of our vision for Run-time Optimization ARchitecture, or ROAR, to support aggressive dynamic optimization of programs. It utilizes a hardware mechanism to automatically recover the precise register states when a deferred exception is reported, utilizing the original unoptimized code to perform all recovery. We observe that Precise Speculation enables a dynamic optimization system to achieve a large performance gain over aggressively optimized base code, while preserving precise exceptions. For an 8-issue EPIC processor, the dynamic optimizer achieves between 3.6% and 57% speedup over a full-strength optimizing compiler that employs profile-guided optimization.
منابع مشابه
Published at Reed-muller 97, Oxford Reordering Based Synthesis
Reordering Based Synthesis (RBS) as an alternative approach to manipulate Decision Diagrams (DDs) is presented. Based on the concept of operation nodes a single \core" operation, i.e. an extended Level Exchange (LE), is suucient to perform the usual synthesis operations on several types of DDs. RBS allows the integration of dynamic variable ordering (even) within a single synthesis operation (e...
متن کاملFast and Efficient Partial Code Reordering: Taking Advantage of Dynamic Recompilation
Poor instruction cache locality can degrade performance on modern architectures. For example, our simulation results show that eliminating all instruction cache misses improves performance by as much as 16% for a modestly sized instruction cache. In this paper, we show how to take advantage of dynamic code generation in a Java Virtual Machine (VM) to improve instruction locality at run-time. We...
متن کاملCode Optimization as a Side E ect of Instruction Scheduling
An instruction scheduler utilizes code reordering techniques for generating schedules in which instructions can be issued without delays. In order to perform code reordering across branches, code motion is performed that hoists some instructions above branches and sinks others below branches. Following code reordering , compensation code must be introduced in order to preserve program semantics...
متن کاملDevelopment of a compression system dynamic simulation code for testing and designing of anti-surge control system
In recent years, several research activities have been conducted to develop knowledge in analysis, design and optimization of compressor anti-surge control system. Since the anti-surge control testing on a full-scale compressor is limited to possible consequences of failure, and also the experimental facility can be expensive to set up control strategies and logic, design process often involves...
متن کاملThe Comparison of Direct and Indirect Optimization Techniques in Equilibrium Analysis of Multibody Dynamic Systems
The present paper describes a set of procedures for the solution of nonlinear static-equilibrium problems in the complex multibody mechanical systems. To find the equilibrium position of the system, five optimization techniques are used to minimize the total potential energy of the system. Comparisons are made between these techniques. A computer program is developed to evaluate the equality co...
متن کامل